From 1a3b0b486c874f0792226797386e4c4ea20e3041 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Mon, 30 Apr 2007 13:00:07 +0000 Subject: [PATCH] pop up the submenu explicitely only in touchscreen mode since otherwise MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 2007-04-30 Michael Natterer * gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): pop up the submenu explicitely only in touchscreen mode since otherwise selecting the item already pops up the submenu. Restores the drag-selection timeout (spotted by Søren Sandmann, #128968). svn path=/trunk/; revision=17735 --- ChangeLog | 7 +++++++ gtk/gtkmenushell.c | 18 +++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 18086d749c..9815b121c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-04-30 Michael Natterer + + * gtk/gtkmenushell.c (gtk_menu_shell_enter_notify): pop up the + submenu explicitely only in touchscreen mode since otherwise + selecting the item already pops up the submenu. Restores the + drag-selection timeout (spotted by Søren Sandmann, #128968). + 2007-04-30 Michael Natterer * gtk/gtkpapersize.h: really rename gtk_paper_size_get_builtins() diff --git a/gtk/gtkmenushell.c b/gtk/gtkmenushell.c index 6d9ab94995..65ddc1211b 100644 --- a/gtk/gtkmenushell.c +++ b/gtk/gtkmenushell.c @@ -810,17 +810,25 @@ gtk_menu_shell_enter_notify (GtkWidget *widget, * entering a menu item where we wouldn't want to show * its submenu. */ - if ((event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON2_MASK)) && - GTK_MENU_ITEM (menu_item)->submenu != NULL && - !GTK_WIDGET_VISIBLE (GTK_MENU_ITEM (menu_item)->submenu)) + if ((event->state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK)) && + GTK_MENU_ITEM (menu_item)->submenu != NULL) { GtkMenuShellPrivate *priv; priv = GTK_MENU_SHELL_GET_PRIVATE (menu_item->parent); + priv->activated_submenu = TRUE; - _gtk_menu_item_popup_submenu (menu_item, TRUE); + if (!GTK_WIDGET_VISIBLE (GTK_MENU_ITEM (menu_item)->submenu)) + { + gboolean touchscreen_mode; - priv->activated_submenu = TRUE; + g_object_get (gtk_widget_get_settings (widget), + "gtk-touchscreen-mode", &touchscreen_mode, + NULL); + + if (touchscreen_mode) + _gtk_menu_item_popup_submenu (menu_item, TRUE); + } } } } -- 2.30.2